home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / share / hplip / ui4 / fabwindow.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-04-20  |  19.9 KB  |  492 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. from base.g import *
  5. from ui_utils import *
  6. from PyQt4.QtCore import *
  7. from PyQt4.QtGui import *
  8. from fabwindow_base import Ui_MainWindow
  9. fax_avail = True
  10.  
  11. try:
  12.     from fax import fax
  13. except ImportError:
  14.     log.error('Fax address book disabled - Python 2.3+ required.')
  15.     fax_avail = False
  16.  
  17.  
  18. class FABWindow(QMainWindow, Ui_MainWindow):
  19.     
  20.     def __init__(self, parent):
  21.         QMainWindow.__init__(self, parent)
  22.         self.setupUi(self)
  23.         self.group = u'All'
  24.         self.name = None
  25.         self.updating_group = False
  26.         self.updating_name = False
  27.         self.initDB()
  28.         self.initUi()
  29.         QTimer.singleShot(0, self.updateUi)
  30.  
  31.     
  32.     def initDB(self):
  33.         self.db = fax.FaxAddressBook()
  34.         data = self.db.get_all_records()
  35.         for d in data:
  36.             if u'All' not in data[d]['groups']:
  37.                 data[d]['groups'].append(u'All')
  38.                 continue
  39.         
  40.         if not data:
  41.             self.db.set('__' + utils.gen_random_uuid(), '', '', '', '', [
  42.                 u'All'], '')
  43.         
  44.  
  45.     
  46.     def initUi(self):
  47.         self.setWindowIcon(QIcon(load_pixmap('prog', '48x48')))
  48.         self.NewGroupAction.setIcon(QIcon(load_pixmap('new_group', '24x24')))
  49.         self.NewGroupFromSelectionAction.setIcon(QIcon(load_pixmap('new_group_from_selection', '24x24')))
  50.         self.RenameGroupAction.setIcon(QIcon(load_pixmap('rename_group', '24x24')))
  51.         self.RemoveGroupAction.setIcon(QIcon(load_pixmap('remove_group', '24x24')))
  52.         self.NewNameAction.setIcon(QIcon(load_pixmap('new_user', '24x24')))
  53.         self.RemoveNameAction.setIcon(QIcon(load_pixmap('remove_user', '24x24')))
  54.         self.AddToGroupAction.setIcon(QIcon(load_pixmap('add_to_group', '24x24')))
  55.         self.RemoveFromGroupAction.setIcon(QIcon(load_pixmap('remove_from_group', '24x24')))
  56.         self.connect(self.QuitAction, SIGNAL('triggered()'), self.close)
  57.         self.connect(self.NewGroupAction, SIGNAL('triggered()'), self.NewGroupAction_triggered)
  58.         self.connect(self.NewGroupFromSelectionAction, SIGNAL('triggered()'), self.NewGroupFromSelectionAction_triggered)
  59.         self.connect(self.RenameGroupAction, SIGNAL('triggered()'), self.RenameGroupAction_triggered)
  60.         self.connect(self.RemoveGroupAction, SIGNAL('triggered()'), self.RemoveGroupAction_triggered)
  61.         self.connect(self.NewNameAction, SIGNAL('triggered()'), self.NewNameAction_triggered)
  62.         self.connect(self.RemoveNameAction, SIGNAL('triggered()'), self.RemoveNameAction_triggered)
  63.         self.connect(self.ImportAction, SIGNAL('triggered()'), self.ImportAction_triggered)
  64.         self.connect(self.RemoveFromGroupAction, SIGNAL('triggered()'), self.RemoveFromGroupAction_triggered)
  65.         self.connect(self.AddToGroupAction, SIGNAL('triggered()'), self.AddToGroupAction_triggered)
  66.         self.GroupTableWidget.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
  67.         self.NameTableWidget.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
  68.         self.connect(self.Splitter, SIGNAL('splitterMoved(int, int)'), self.Splitter_splitterMoved)
  69.         self.Splitter.setChildrenCollapsible(False)
  70.         self.Splitter.setHandleWidth(self.Splitter.handleWidth() + 2)
  71.         self.GroupTableWidget.verticalHeader().hide()
  72.         self.GroupTableWidget.setShowGrid(False)
  73.         self.GroupTableWidget.setSelectionMode(QAbstractItemView.SingleSelection)
  74.         self.NameTableWidget.verticalHeader().hide()
  75.         self.NameTableWidget.setShowGrid(False)
  76.         self.NameTableWidget.setDragEnabled(True)
  77.         self.GroupTableWidget.setAcceptDrops(True)
  78.         self.GroupTableWidget.setDropIndicatorShown(True)
  79.         self.connect(self.GroupTableWidget, SIGNAL('itemSelectionChanged()'), self.GroupTableWidget_itemSelectionChanged)
  80.         self.connect(self.NameTableWidget, SIGNAL('itemSelectionChanged()'), self.NameTableWidget_itemSelectionChanged)
  81.         self.connect(self.NameLineEdit, SIGNAL('editingFinished()'), self.NameLineEdit_editingFinished)
  82.         self.connect(self.FaxNumberLineEdit, SIGNAL('editingFinished()'), self.FaxNumberLineEdit_editingFinished)
  83.         self.connect(self.NotesTextEdit, SIGNAL('textChanged()'), self.NotesTextEdit_textChanged)
  84.         self.connect(self.NotesTextEdit, SIGNAL('editingFinished()'), self.NotesTextEdit_editingFinished)
  85.         self.connect(self.GroupTableWidget, SIGNAL('namesAddedToGroup'), self.GroupTableWidget_namesAddedToGroup)
  86.         self.FaxNumberLineEdit.setValidator(PhoneNumValidator(self.FaxNumberLineEdit))
  87.         self.NameLineEdit.setValidator(AddressBookNameValidator(self.db, self.NameLineEdit))
  88.         self.GroupTableWidget.setContextMenuPolicy(Qt.ActionsContextMenu)
  89.         self.GroupTableWidget.addAction(self.NewGroupAction)
  90.         self.GroupTableWidget.addAction(self.NewGroupFromSelectionAction)
  91.         self.GroupTableWidget.addAction(self.RenameGroupAction)
  92.         self.GroupTableWidget.addAction(self.RemoveGroupAction)
  93.         self.NameTableWidget.setContextMenuPolicy(Qt.ActionsContextMenu)
  94.         self.NameTableWidget.addAction(self.NewNameAction)
  95.         self.NameTableWidget.addAction(self.AddToGroupAction)
  96.         self.NameTableWidget.addAction(self.RemoveFromGroupAction)
  97.         self.NameTableWidget.addAction(self.RemoveNameAction)
  98.         self.NameTableWidget.addAction(self.NewGroupFromSelectionAction)
  99.         self.GroupTableWidget.setDatabase(self.db)
  100.  
  101.     
  102.     def updateUi(self):
  103.         if not fax_avail:
  104.             FailureUI(self, self._FABWindow__tr('<b>Fax support disabled.</b><p>Fax support requires Python 2.3.'))
  105.             self.close()
  106.             return None
  107.         self.updateGroupList()
  108.         self.updateNameList()
  109.         self.updateDetailsFrame()
  110.  
  111.     
  112.     def closeEvent(self, e):
  113.         self.FaxNumberLineEdit.emit(SIGNAL('editingFinished()'))
  114.         self.NotesTextEdit.emit(SIGNAL('editingFinished()'))
  115.         e.accept()
  116.  
  117.     
  118.     def Splitter_splitterMoved(self, pos, index):
  119.         self.GroupTableWidget.setColumnWidth(0, self.GroupTableWidget.width())
  120.         self.NameTableWidget.setColumnWidth(0, self.NameTableWidget.width())
  121.  
  122.     
  123.     def updateGroupList(self):
  124.         self.updating_group = True
  125.         (all, k) = (None, None)
  126.         
  127.         try:
  128.             headerItem = QTableWidgetItem()
  129.             headerItem.setText(self._FABWindow__tr('Group'))
  130.             self.GroupTableWidget.clear()
  131.             self.GroupTableWidget.setColumnCount(1)
  132.             self.GroupTableWidget.setHorizontalHeaderItem(0, headerItem)
  133.             self.GroupTableWidget.setColumnWidth(0, self.GroupTableWidget.width())
  134.             groups = self.db.get_all_groups()
  135.             groups.sort()
  136.             self.GroupTableWidget.setRowCount(len(groups))
  137.             all = QTableWidgetItem(self._FABWindow__tr('All'))
  138.             all.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
  139.             self.GroupTableWidget.setItem(0, 0, all)
  140.             j = 1
  141.             for g in groups:
  142.                 if g == u'All':
  143.                     continue
  144.                 
  145.                 i = QTableWidgetItem(QString(g))
  146.                 if g == self.group:
  147.                     k = i
  148.                 
  149.                 i.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsDropEnabled)
  150.                 self.GroupTableWidget.setItem(j, 0, i)
  151.                 j += 1
  152.         finally:
  153.             self.updating_group = False
  154.             if k is not None:
  155.                 k.setSelected(True)
  156.             elif all is not None:
  157.                 all.setSelected(True)
  158.             
  159.  
  160.  
  161.     
  162.     def GroupTableWidget_itemSelectionChanged(self):
  163.         if not self.updating_group:
  164.             selected_items = self.GroupTableWidget.selectedItems()
  165.             if selected_items:
  166.                 self.group = unicode(selected_items[0].text())
  167.                 self.RemoveGroupAction.setEnabled(self.group != u'All')
  168.                 self.RenameGroupAction.setEnabled(self.group != u'All')
  169.             else:
  170.                 self.RemoveGroupAction.setEnabled(False)
  171.                 self.RenameGroupAction.setEnabled(False)
  172.                 self.group = None
  173.             self.updateNameList()
  174.         
  175.  
  176.     
  177.     def NameTableWidget_itemSelectionChanged(self):
  178.         if not self.updating_name:
  179.             selected_items = self.NameTableWidget.selectedItems()
  180.             num_selected_items = len(selected_items)
  181.             if num_selected_items == 0:
  182.                 self.name = None
  183.                 self.RemoveNameAction.setEnabled(False)
  184.                 self.NewGroupFromSelectionAction.setEnabled(False)
  185.                 self.RemoveFromGroupAction.setEnabled(False)
  186.                 self.AddToGroupAction.setEnabled(False)
  187.             elif num_selected_items == 1:
  188.                 self.name = unicode(selected_items[0].text())
  189.                 self.RemoveNameAction.setEnabled(True)
  190.                 self.NewGroupFromSelectionAction.setEnabled(True)
  191.                 self.RemoveFromGroupAction.setEnabled(self.group != u'All')
  192.                 self.AddToGroupAction.setEnabled(True)
  193.             else:
  194.                 self.RemoveNameAction.setEnabled(True)
  195.                 self.NewGroupFromSelectionAction.setEnabled(True)
  196.                 self.RemoveFromGroupAction.setEnabled(self.group != u'All')
  197.                 self.AddToGroupAction.setEnabled(True)
  198.                 self.name = None
  199.             self.updateDetailsFrame()
  200.         
  201.  
  202.     
  203.     def updateNameList(self):
  204.         self.updating_name = True
  205.         (m, k) = (None, None)
  206.         
  207.         try:
  208.             headerItem = QTableWidgetItem()
  209.             headerItem.setText(self._FABWindow__tr('Name'))
  210.             self.NameTableWidget.clear()
  211.             self.NameTableWidget.setColumnCount(1)
  212.             self.NameTableWidget.setHorizontalHeaderItem(0, headerItem)
  213.             self.NameTableWidget.setColumnWidth(0, self.NameTableWidget.width())
  214.             names = self.db.group_members(self.group)
  215.             filtered_names = _[1]
  216.             filtered_names.sort()
  217.             self.NameTableWidget.setRowCount(len(filtered_names))
  218.             for j, n in enumerate(filtered_names):
  219.                 i = QTableWidgetItem(QString(n))
  220.                 i.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsDragEnabled)
  221.                 self.NameTableWidget.setItem(j, 0, i)
  222.                 if j == 0:
  223.                     k = i
  224.                     continue
  225.                 None if n == self.name else []
  226.         finally:
  227.             self.updating_name = False
  228.             if m is not None:
  229.                 m.setSelected(True)
  230.             elif k is not None:
  231.                 k.setSelected(True)
  232.             else:
  233.                 self.name = None
  234.                 self.RemoveNameAction.setEnabled(False)
  235.                 self.NewGroupFromSelectionAction.setEnabled(False)
  236.                 self.RemoveFromGroupAction.setEnabled(False)
  237.                 self.AddToGroupAction.setEnabled(False)
  238.                 self.updateDetailsFrame()
  239.  
  240.  
  241.     
  242.     def selectByName(self, name):
  243.         rows = self.NameTableWidget.rowCount()
  244.         for r in range(rows):
  245.             i = self.NameTableWidget.item(r, 0)
  246.             i.setSelected(name == unicode(i.text()))
  247.         
  248.  
  249.     
  250.     def updateDetailsFrame(self):
  251.         if self.name is None:
  252.             self.NameFrame.setEnabled(False)
  253.             self.NameLineEdit.setText(QString())
  254.             self.FaxNumberLineEdit.setText(QString())
  255.             self.NotesTextEdit.setText(QString())
  256.         else:
  257.             self.NameFrame.setEnabled(True)
  258.             data = self.db.get(self.name)
  259.             self.NameLineEdit.setText(self.name)
  260.             self.FaxNumberLineEdit.setText(data['fax'])
  261.             self.NotesTextEdit.setText(data['notes'])
  262.  
  263.     
  264.     def NameLineEdit_editingFinished(self):
  265.         if self.name is not None:
  266.             new_name = unicode(self.NameLineEdit.text())
  267.             if new_name != self.name:
  268.                 if QMessageBox.question(self, self._FABWindow__tr('Rename?'), self._FABWindow__tr("Rename '%1' to '%2'?").arg(self.name).arg(new_name), QMessageBox.Yes | QMessageBox.No) == QMessageBox.Yes:
  269.                     self.db.rename(self.name, new_name)
  270.                     log.debug('Rename %s to %s' % (self.name, new_name))
  271.                     self.emit(SIGNAL('databaseChanged'), FAB_NAME_RENAME, self.name, new_name)
  272.                     self.updateNameList()
  273.                 else:
  274.                     self.NameLineEdit.setText(self.name)
  275.             
  276.         
  277.  
  278.     
  279.     def FaxNumberLineEdit_editingFinished(self):
  280.         if self.name is not None:
  281.             self.db.set_key_value(self.name, 'fax', unicode(self.FaxNumberLineEdit.text()))
  282.             self.emit(SIGNAL('databaseChanged'), FAB_NAME_DETAILS_CHANGED, self.name)
  283.         
  284.  
  285.     
  286.     def NotesTextEdit_textChanged(self):
  287.         if self.name is not None:
  288.             self.db.set_key_value(self.name, 'notes', unicode(self.NotesTextEdit.document().toPlainText()))
  289.         
  290.  
  291.     
  292.     def NotesTextEdit_editingFinished(self):
  293.         if self.name is not None:
  294.             self.emit(SIGNAL('databaseChanged'), FAB_NAME_DETAILS_CHANGED, self.name)
  295.         
  296.  
  297.     
  298.     def NewGroupAction_triggered(self):
  299.         ok = False
  300.         (g, ok) = QInputDialog.getText(self, self._FABWindow__tr('Enter New Group Name'), self._FABWindow__tr('Name for New Group:'))
  301.         g = unicode(g)
  302.         if g == u'All':
  303.             FailureUI(self, self._FABWindow__tr("<b>Sorry, the group name cannot be 'All'.</b><p>Please choose a different name."))
  304.             ok = False
  305.         
  306.         if ok:
  307.             self.db.set('__' + utils.gen_random_uuid(), '', '', '', '', [
  308.                 u'All',
  309.                 g], '')
  310.             self.group = g
  311.             log.debug('New empty group %s' % self.group)
  312.             self.emit(SIGNAL('databaseChanged'), FAB_GROUP_ADD, self.group)
  313.             self.updateGroupList()
  314.         
  315.  
  316.     
  317.     def NewGroupFromSelectionAction_triggered(self):
  318.         selected_names = [ unicode(n.text()) for n in self.NameTableWidget.selectedItems() ]
  319.         if selected_names:
  320.             ok = False
  321.             (g, ok) = QInputDialog.getText(self, self._FABWindow__tr('Enter New Group Name'), self._FABWindow__tr('Name for New Group:'))
  322.             g = unicode(g)
  323.             groups = self.db.get_all_groups()
  324.             if ok:
  325.                 self.db.update_groups(g, selected_names)
  326.                 self.group = g
  327.                 log.debug('New group %s with names %s' % (self.group, ','.join(selected_names)))
  328.                 self.emit(SIGNAL('databaseChanged'), FAB_GROUP_ADD, self.group)
  329.                 self.updateGroupList()
  330.             
  331.         
  332.  
  333.     
  334.     def RenameGroupAction_triggered(self):
  335.         selected_items = self.GroupTableWidget.selectedItems()
  336.         if selected_items:
  337.             old_group = unicode(selected_items[0].text())
  338.             ok = False
  339.             (new_group, ok) = QInputDialog.getText(self, self._FABWindow__tr('Rename Group'), self._FABWindow__tr("New Name for Group '%1':").arg(old_group))
  340.             new_group = unicode(new_group)
  341.             groups = self.db.get_all_groups()
  342.             if new_group in groups:
  343.                 FailureUI(self, self._FABWindow__tr("<b>Sorry, the group name cannot be the same as an existing group (or 'All').</b><p>Please choose a different name."))
  344.                 ok = False
  345.             
  346.             if ok:
  347.                 self.db.rename_group(old_group, new_group)
  348.                 log.debug('Rename group %s to %s' % (old_group, new_group))
  349.                 self.emit(SIGNAL('databaseChanged'), FAB_GROUP_RENAME, old_group, new_group)
  350.                 self.group = new_group
  351.                 self.updateGroupList()
  352.             
  353.         
  354.  
  355.     
  356.     def RemoveGroupAction_triggered(self):
  357.         self.db.delete_group(self.group)
  358.         log.debug('Remove group %s' % self.group)
  359.         self.emit(SIGNAL('databaseChanged'), FAB_GROUP_REMOVE, self.group)
  360.         self.group = None
  361.         self.updateGroupList()
  362.  
  363.     
  364.     def NewNameAction_triggered(self):
  365.         ok = False
  366.         (t, ok) = QInputDialog.getText(self, self._FABWindow__tr('Enter New Name'), self._FABWindow__tr('New Name:'))
  367.         if ok:
  368.             t = unicode(t)
  369.             self.addName(t)
  370.         
  371.  
  372.     
  373.     def addName(self, name, fax = ''):
  374.         if self.group == u'All':
  375.             g = [
  376.                 u'All']
  377.         else:
  378.             g = [
  379.                 u'All',
  380.                 self.group]
  381.         self.db.set(name, '', '', '', fax, g, '')
  382.         self.name = name
  383.         log.debug('New name %s' % self.name)
  384.         self.emit(SIGNAL('databaseChanged'), FAB_NAME_ADD, self.name)
  385.         self.updateNameList()
  386.  
  387.     
  388.     def RemoveNameAction_triggered(self):
  389.         selected_names = [ unicode(n.text()) for n in self.NameTableWidget.selectedItems() ]
  390.  
  391.     
  392.     def RemoveFromGroupAction_triggered(self):
  393.         selected_names = [ unicode(n.text()) for n in self.NameTableWidget.selectedItems() ]
  394.  
  395.     
  396.     def GroupTableWidget_namesAddedToGroup(self, row, items):
  397.         self.group = unicode(self.GroupTableWidget.item(row, 0).text())
  398.         self.db.add_to_group(self.group, items)
  399.         log.debug('Adding %s to group %s' % (','.join(items), self.group))
  400.         self.emit(SIGNAL('databaseChanged'), FAB_GROUP_MEMBERSHIP_CHANGED, self.group)
  401.         self.updateGroupList()
  402.  
  403.     
  404.     def AddToGroupAction_triggered(self):
  405.         selected_names = [ unicode(n.text()) for n in self.NameTableWidget.selectedItems() ]
  406.  
  407.     
  408.     def ImportAction_triggered(self):
  409.         result = unicode(QFileDialog.getOpenFileName(self, self._FABWindow__tr('Import fax addresses from LDIF or vCard'), user_conf.workingDirectory(), 'vCard (*.vcf);;LDIF (*.ldif *.ldi)'))
  410.         if result:
  411.             working_directory = unicode(os.path.dirname(result))
  412.             log.debug('result: %s' % result)
  413.             user_conf.setWorkingDirectory(working_directory)
  414.             if result:
  415.                 if result.endswith('.vcf'):
  416.                     (ok, error_str) = self.db.import_vcard(result)
  417.                 else:
  418.                     (ok, error_str) = self.db.import_ldif(result)
  419.                 if not ok:
  420.                     FailureUI(self, error_str)
  421.                 else:
  422.                     self.updateUi()
  423.             
  424.         
  425.  
  426.     
  427.     def __tr(self, s, c = None):
  428.         return qApp.translate('FABWindow', s, c)
  429.  
  430.  
  431.  
  432. class JoinDialog(QDialog):
  433.     
  434.     def __init__(self, parent, groups):
  435.         QDialog.__init__(self, parent)
  436.         self.group = ''
  437.         self.setupUi(groups)
  438.  
  439.     
  440.     def setupUi(self, groups):
  441.         self.setObjectName('Dialog')
  442.         self.resize(QSize(QRect(0, 0, 271, 107).size()).expandedTo(self.minimumSizeHint()))
  443.         self.gridlayout = QGridLayout(self)
  444.         self.gridlayout.setObjectName('gridlayout')
  445.         self.hboxlayout = QHBoxLayout()
  446.         self.hboxlayout.setObjectName('hboxlayout')
  447.         self.label = QLabel(self)
  448.         self.label.setObjectName('label')
  449.         self.hboxlayout.addWidget(self.label)
  450.         self.GroupJoinComboBox = QComboBox(self)
  451.         sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
  452.         sizePolicy.setHorizontalStretch(0)
  453.         sizePolicy.setVerticalStretch(0)
  454.         sizePolicy.setHeightForWidth(self.GroupJoinComboBox.sizePolicy().hasHeightForWidth())
  455.         self.GroupJoinComboBox.setSizePolicy(sizePolicy)
  456.         self.GroupJoinComboBox.setObjectName('comboBox')
  457.         self.hboxlayout.addWidget(self.GroupJoinComboBox)
  458.         self.gridlayout.addLayout(self.hboxlayout, 0, 0, 1, 3)
  459.         spacerItem = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
  460.         self.gridlayout.addItem(spacerItem, 1, 0, 1, 1)
  461.         spacerItem1 = QSpacerItem(231, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
  462.         self.gridlayout.addItem(spacerItem1, 2, 0, 1, 1)
  463.         self.JoinButton = QPushButton(self)
  464.         self.JoinButton.setObjectName('pushButton_2')
  465.         self.gridlayout.addWidget(self.JoinButton, 2, 1, 1, 1)
  466.         self.CancelButton = QPushButton(self)
  467.         self.CancelButton.setObjectName('pushButton')
  468.         self.gridlayout.addWidget(self.CancelButton, 2, 2, 1, 1)
  469.         self.connect(self.GroupJoinComboBox, SIGNAL('currentIndexChanged(int)'), self.GroupJoinComboBox_currentIndexChanged)
  470.         for i, g in enumerate(groups):
  471.             if i == 0:
  472.                 self.group = g
  473.             
  474.             self.GroupJoinComboBox.insertItem(i, g)
  475.         
  476.         self.connect(self.JoinButton, SIGNAL('clicked()'), self.accept)
  477.         self.connect(self.CancelButton, SIGNAL('clicked()'), self.reject)
  478.         self.retranslateUi()
  479.  
  480.     
  481.     def GroupJoinComboBox_currentIndexChanged(self, i):
  482.         self.group = unicode(self.GroupJoinComboBox.currentText())
  483.  
  484.     
  485.     def retranslateUi(self):
  486.         self.setWindowTitle(QApplication.translate('Dialog', 'Join Group', None, QApplication.UnicodeUTF8))
  487.         self.label.setText(QApplication.translate('Dialog', 'Group to Join:', None, QApplication.UnicodeUTF8))
  488.         self.JoinButton.setText(QApplication.translate('Dialog', 'Join', None, QApplication.UnicodeUTF8))
  489.         self.CancelButton.setText(QApplication.translate('Dialog', 'Cancel', None, QApplication.UnicodeUTF8))
  490.  
  491.  
  492.